As an aside, the ‘couple of observations’ I referred to are: that the 15 must be on the bottom row, since it can’t be the difference between any other two numbers in the range; and that you only have to define the numbers on the bottom row, and the rest of the grid is defined, at which point you just need to check for duplicates. (This give (14!/10!)*5/2 = 60060 possibilities).
Wherever we have the top and one of the other numbers in a mini triangle, the other number could be the sum (unless it’s over 15) or the difference of the given two, unless the top number is greater, in which case it must be the sum.
Therefore you can place the 14 and the 9 straight away.
On the face of it the number completing the 7,8 triangle could be 1 or 15, however as we have observed the 15 must be on the bottom row, so it must be the 1.
‘e’ might be 13 or 15. ‘a’ could be 3 or 11.
‘c’ will either be 4 or 12, depending on what ‘a’ turns out to be, however since 4 is already taken, c must be 12 and a must be 11.
If e was 13, f would be 1, however, since we’ve already used 1, e must be 15, and f must be 3.
Finally b must be 2, d is 10 (since 14 is already taken), and g must be 13.
In case you’re interested, this 15 cell triangle is the largest than can exist with each number the difference of the two below.